define(function(require,exports,modules){
    var G = require('./g');
    var $ = require('zepto');
    var wx=require('./wx');


    function Customer(){
        this.init.call(this);
    }

    Customer.prototype = {
        init : function(){
            this.tab = 0;//用于记录选中的tab标签页
            this.list = {
                lastId : [0,0,0], //记录最后一条记录ID
                hasData : [true,true,true], //记录是否还有数据可请求
                pageSize : [20,20,20], //分页大小
                first : [true,true,true] //区分是否第一次请求，如果没数据会显示暂时没数据的担示
            };//包含tab分页信息
            this.getDataBtn = true;//是否可以请求数据，防止在滚动时重复请求数据
            this.initEvent();//初始化事件
            this.wxShare();//初始化微信分享
            this.getData();//页面初始化数据
            this.getUserInfo();//获取用户信息
            this.ww = $(window).width();
            this.getHoverPosition();
        },
        initEvent : function(){
            $(document).on('click','.xin',function(){
                if($(this).hasClass('xin-on')){
                    $(this).removeClass('xin-on');
                }else{
                    $(this).addClass('xin-on');
                }
            });
            $(document).on('click','.atten',function(){
                var that = this;
                if(!$(this).hasClass('no-focus')){
                    G.confirm('你确定要取消对该用户的关注吗？',function(){
                        _this.attention.call(that,$(that).attr('data-id'));
                    })
                }else{
                    _this.attention.call(this,$(this).attr('data-id'));
                }
            });
            $(window).scroll(function(){
                if($(window).scrollTop() >= 82){
                    $('#fixTop').css({
                        'position':'fixed'
                    });
                }else{
                    $('#fixTop').css({
                        'position':'relative'
                    });
                }

            });
        },
        initPage : function(){

        },
        getData : function(){

        },
        getUserInfo : function(){
            var _this = this;
            G.loading();
            G.ajax_common({
                url : '/user/detail/<userId>',
                data : '',
                success : function(json){
                    G.loadingHide();
                    _this.renderUserInfo(json.data);
                },
                error : function(){
                    G.loadingHide().tip('数据请求失败，请重试');
                    return false;
                }
            });
        },
        renderUserInfo : function(data){
            var user = data.user;
            $('#tx').attr('src',user.headUrl);
            $('#userName').text(user.nickname);
            $('#sex').text(user.sex);
            $('#fansNum').text(data.fansCount);
            $('#agreedNum').text(data.agreeCount);
            $('#shareNum').text(data.swCount);
            $('#pingceNum').text(data.pcCount);
            $('#wantsNum').text(data.desireCount);
            $('#hadNum').text(data.ownCount);
            if(data.isFollow){
                $('#attentionBtn').addClass('attend');
            }
            if(user.sex == 'FEMALE'){
                $('#sex').addClass('female');
            }else if(user.sex == 'MALE'){
                $('#sex').addClass('male');
            }
        },
        getHoverPosition : function(){
            var arr = [],
                oneItemWidth = Math.floor((this.ww - 20)/4);
            for(var i = 0;i < 4;i++){
                arr.push((oneItemWidth * i) + ((oneItemWidth - 50)/2) + 10);
            };
            this.hoverPosition = arr;
        },
        animateHover : function(index){ //TAB切换时动画
            var _this = this;
            $('#tabHover').css({left:_this.hoverPosition[index]});
        },
        attention : function(authorId){ //关注TA
            G.loading();
            var actionType = $(this).hasClass('attend') ? 0 : 1; //操作类型，0关注，1取消关注
            var _this = this;
            G.ajax({
                url : '/user/follow/'+actionType+'/'+authorId,
                success : function(json){
                    if(actionType == 0){
                        G.loadingHide().tip('关注成功');
                        $(_this).removeClass('attend');
                    }else{
                        G.loadingHide().tip('取消成功');
                        //$(_this).addClass('attend');
                        $(this).parent().remove();
                    }
                }
            })
        },
        wxShare : function(){
            G.wxFun({
                ready : function(weixin){
                    weixin.hideAllNonBaseMenuItem();
                }
            });
        }
    };

    var C = new Customer();


    //多选项卡切换
    function T_qiehuan(choice,cssS,callback){
        //把所有目标选项隐藏
        function HiddenAim(){
            $(choice).each(function() {
                $("#"+$(this).attr("aim")).hide();
            });
        }
        $(choice).click(function(){
            if($(this).attr("aim")){//判断是否有aim属性，有此属性才执行
                currentId=$(this).attr("aim");
                $('.mask-cover').addClass('mask-cover-on');
                setTimeout(function(){
                    $('.mask-cover').removeClass('mask-cover-on');
                    HiddenAim();
                    $("#"+currentId).show();//显示目标选项
                },300);
                $(this).addClass(cssS).siblings().removeClass(cssS);//移除当前选中的样式
                //回调函数
                if(callback)
                {
                    var index=$(this).index();
                    callback.call(this,index);
                }
            }
        })//初始化事件
            //把所有目标隐藏
            .each(function(){
                $("#"+$(this).attr("aim")).hide();
            })
            //为初始化默认值添加样式和显示目标选项
            .eq(0).addClass(cssS);
        var firstDisId=$(choice).eq(0).attr("aim");
        $("#"+firstDisId).show();
        C.animateHover(0);

    };

    T_qiehuan('#Tab_0 a','on',function(index){
        C.tab = index;
        $(window).scrollTop(0);
        if(C.list.hasData[index]){ //判断该标签页是否还有数据
            C.getData();
        }
        C.animateHover(index);
    });


});